//大于等于顺序前缀和的最小缺失整数
/*给你一个下标从 0 开始的整数数组 nums 。

如果一个前缀 nums[0..i] 满足对于 1 <= j <= i 的所有元素都有 nums[j] = nums[j - 1] + 1 ，那么我们称这个前缀是一个 顺序前缀 。特殊情况是，只包含 nums[0] 的前缀也是一个 顺序前缀 。

请你返回 nums 中没有出现过的 最小 整数 x ，满足 x 大于等于 最长 顺序前缀的和。
1 <= nums.length <= 50
1 <= nums[i] <= 50*/
class Solution {
public:
    int missingInteger(vector<int>& nums) {
        int hash[51] = {0};
        if (nums.size() == 1)
            return nums[0] + 1;
        int sum = nums[0];
        hash[nums[0]]++;
        for (int i = 1; i < nums.size(); i++) {
            if (nums[i] == nums[i - 1] + 1) {
                sum += nums[i];
            } else {
                break;
            }
        }
        for (auto i : nums) {
            hash[i]++;
        }
        while (sum < 51 && hash[sum]) {
            sum++;
        }
        return sum;
    }
};